package com.ht.web_vr_home_tour_backend.utils;

import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.ht.web_vr_home_tour_backend.obj.enums.ObjType;
import com.ht.web_vr_home_tour_backend.utils.exceptions.MessageException;

public class ObjTypeSerializer {
    public static String toJson(ObjType objType) {
        JSONObject jsonObj = JSONUtil.createObj();
        jsonObj.append("id", objType.name())
                .append("name", objType.getContentName())
                .append("contentType", objType.getContentType());
        return jsonObj.toString();
    }

    public static ObjType parse(String jsonStr) {
        JSON json = JSONUtil.parse(jsonStr);
        String id = json.getByPath("id", String.class);
        if (StrUtil.isBlankIfStr(id)) {
            throw new MessageException("对象类型错误，请重试");
        }
        try {
            return ObjType.valueOf(id);
        } catch (IllegalArgumentException e) {
            throw new MessageException("对象类型错误，请重试");
        }
    }
}
